package hotel.quartz.oversea.vo.meituan;

import lombok.Data;
import org.springframework.data.annotation.Id;

import javax.persistence.Table;
import java.io.Serializable;
import java.util.Date;

/**
 * 美团酒店-预约下单上送数据保存entity
 *
 * [预约下单接口]要上送自定义distributorOrderId
 * 下单后上游会返回distributorOrderid和上游平台订单ID号mtOrderId
 * [查询订单接口]根据  idstrbutorOrderId和mtOrderId
 *
 *
 * @Author qiuyy
 * @Date 2020/5/15
 **/
@Data
@Table(name = "mt_hotel_order_booking")
public class MtHotelOrderBooking implements Serializable {
    private static final long serialVersionUID = -3558484447659806221L;
    /**
     * 主键id
     */
    @Id
    private String id;
    /**
     * 分销平台(美团)酒店ID
     */
    private String mtHotelId;
    /**
     * 分销商订单ID（很好办提供，但上游会返回mtOrderId）
     * 后面其他接口涉及订单的返回是mtOrderId，参数的上送是mtOrderId和distributorOrderId
     */
    private String mtDistributorOrderId;
    /**
     * 下单后上游返回订单id，美团平台订单id
     */
    private String mtOrderId;
    /**
     * 分销平台产品ID。
     */
    private String mtGoodsId;
    /**
     * 入住人姓名列表，各姓名间以英文逗号分隔，如"陈振锋,Avril Lavigne"。
     */
    private String mtPersonNames;
    /**
     * 联系人姓名。
     */
    private String mtContactName;
    /**
     * 联系人电话号码。
     */
    private String mtContactPhone;
    /**
     * 最晚到店时间，格式为yyyy-MM-dd HH:mm:ss。
     */
    private String mtArriveDate;
    /**
     * 入住日期，格式为yyyy-MM-dd, 钟点房时入住时间，格式为yyyy-MM-dd HH:mm:ss。
     */
    private String mtCheckinDate;
    /**
     * 离店日期，格式为yyyy-MM-dd, 钟点房时离店时间，格式为yyyy-MM-dd HH:mm:ss。
     */
    private String mtCheckoutDate;
    /**
     * 预订间数。
     */
    private Integer mtRoomNum;
    /**
     * 订单总价，单位为分。总价=预订房间数x预定日期内房间单价。例如，4月1日入住，4月3日离店，预定2间房，则总价=2*(4月1日房价+4月2日房价）
     */
    private Integer mtTotalPrice;

    /**
     * 结算价，单位为分。结算价=总价 - 分销商佣金。
     */
    private Integer mtSettlePrice;
    /**
     * 用户预约下单时填写的备注信息。
     */
    private String mtComment;
    /**
     * 身份证号(填写一个入住人)
     */
    private String mtPersonIdentities;
    /**
     * 是否需要美团开发票:
     * 0 不需要
     * 1 需要
     */
    private Integer mtNeedInvoice;
    /**
     *
     * 订单状态：
     * 10 hhb订单创建未提交
     * 20 mt预定中 booking
     * 21 mt预定成功 book_suc
     * 22 mt预定失败 book_fail
     * 30 mt取消中 canceling
     * 31 mt取消成功 cancel_suc
     * 40 已消费退款（美团客服介入后才可能出现此状态）
     * 50 已入住
     */
    private Integer mtOrderState;
    /**
     * 状态 0 正常 1 异常
     */
    private Integer state;
    /**
     * 备注
     */
    private String remark;
    /**
     * 创建时间
     */
    private Date createTime;
    /**
     * 修改时间
     */
    private Date modifyTime;

    public MtHotelOrderBooking setId(String id) {
        this.id = id;
        return this;
    }
    public MtHotelOrderBooking setMtOrderId(String mtOrderId) {
        this.mtOrderId = mtOrderId;
        return this;
    }

    public MtHotelOrderBooking setMtOrderState(Integer mtOrderState) {
        this.mtOrderState = mtOrderState;
        return this;
    }
    public MtHotelOrderBooking setMtHotelId(String mtHotelId) {
        this.mtHotelId = mtHotelId;
        return this;
    }

    public MtHotelOrderBooking setMtDistributorOrderId(String mtDistributorOrderId) {
        this.mtDistributorOrderId = mtDistributorOrderId;
        return this;
    }

    public MtHotelOrderBooking setMtGoodsId(String mtGoodsId) {
        this.mtGoodsId = mtGoodsId;
        return this;
    }

    public MtHotelOrderBooking setMtPersonNames(String mtPersonNames) {
        this.mtPersonNames = mtPersonNames;
        return this;
    }

    public MtHotelOrderBooking setMtContactName(String mtContactName) {
        this.mtContactName = mtContactName;
        return this;
    }

    public MtHotelOrderBooking setMtContactPhone(String mtContactPhone) {
        this.mtContactPhone = mtContactPhone;
        return this;
    }

    public MtHotelOrderBooking setMtArriveDate(String mtArriveDate) {
        this.mtArriveDate = mtArriveDate;
        return this;
    }

    public MtHotelOrderBooking setMtCheckinDate(String mtCheckinDate) {
        this.mtCheckinDate = mtCheckinDate;
        return this;
    }

    public MtHotelOrderBooking setMtCheckoutDate(String mtCheckoutDate) {
        this.mtCheckoutDate = mtCheckoutDate;
        return this;
    }

    public MtHotelOrderBooking setMtRoomNum(Integer mtRoomNum) {
        this.mtRoomNum = mtRoomNum;
        return this;
    }

    public MtHotelOrderBooking setMtTotalPrice(Integer mtTotalPrice) {
        this.mtTotalPrice = mtTotalPrice;
        return this;
    }

    public MtHotelOrderBooking setMtSettlePrice(Integer mtSettlePrice) {
        this.mtSettlePrice = mtSettlePrice;
        return this;
    }

    public MtHotelOrderBooking setMtComment(String mtComment) {
        this.mtComment = mtComment;
        return this;
    }

    public MtHotelOrderBooking setMtPersonIdentities(String mtPersonIdentities) {
        this.mtPersonIdentities = mtPersonIdentities;
        return this;
    }

    public MtHotelOrderBooking setMtNeedInvoice(Integer mtNeedInvoice) {
        this.mtNeedInvoice = mtNeedInvoice;
        return this;
    }

    public MtHotelOrderBooking setState(Integer state) {
        this.state = state;
        return this;
    }

    public MtHotelOrderBooking setRemark(String remark) {
        this.remark = remark;
        return this;
    }

    public MtHotelOrderBooking setCreateTime(Date createTime) {
        this.createTime = createTime;
        return this;
    }

    public MtHotelOrderBooking setModifyTime(Date modifyTime) {
        this.modifyTime = modifyTime;
        return this;
    }
}
